using System;
using System.Collections.Generic;
using BancoX.Dominio;

namespace BancoX.Persistencia
{
    public class RepositorioOperaciones : IRepositorioOperaciones
    {
        private List<Operacion> _operaciones = new List<Operacion>();

        public void RegistrarOperacion(Operacion operacion)
        {
            _operaciones.Add(operacion);
        }

        public List<Operacion> ObtenerOperaciones(string numeroCuenta)
        {
            CuentaBancaria cuenta = _repositorioCuentas.ObtenerCuenta(numeroCuenta);
            List<Operacion> resultado = new List<Operacion>();
            if (cuenta == null)
                return resultado;
            
            foreach (Operacion operacion in _operaciones)
            {
                if (operacion.AfectaA(cuenta) || operacion.Cuenta.Equals(cuenta))
                    resultado.Add(operacion);
            }
            return resultado;
        }

        private IRepositorioCuentas _repositorioCuentas;

        public IRepositorioCuentas RepositorioCuentas
        {
            set { _repositorioCuentas = value; }
        }
    }
}
